#
# Copyright (C) 2020 OpenWrt.org
# Author: Mirko Vogt <mirko-openwrt@nanl.de>
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

# TODO / known bugs:
# - plugins don't work when sstrip is used for stripping
# - no X11/wayland/xcb/kms support so far - primary target is linuxfb

include $(TOPDIR)/rules.mk

PKG_NAME:=qt5base
PKG_VERSION:=5.15.0
PKG_RELEASE:=1
PKG_HASH:=bc9a21e9f6fff9629019fdf9f989f064751d5073c3a28dc596def92f4d4275c6

PKG_SYS_NAME:=qtbase-everywhere-src-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules

PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
HOST_BUILD_DIR=$(BUILD_DIR)/host/$(PKG_SYS_NAME)
PKG_BUILD_PARALLEL:=1
HOST_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_USE_MIPS16:=0
# Yes, the host build depends on the target build. This is not a mistake!
# The target build provides the (target specific) qmake.mk file which
# is also used for host builds.
# Host projects depend on qt5base/host which however don't build
# if qt5base didn't install the qmake.mk file before.
# Benefit of the target build providing qmake.mk instead of the host build
# is that the host build really only needs to be built, if there're targets
# which actually depend on it. At the time of this writing, only qt5tools
# makes use of the host build.
HOST_BUILD_DEPENDS:=qt5base

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/nls.mk
include ./files/qmake.mk

PKG_CONFIG_DEPENDS:= \
	CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg \
	CONFIG_PACKAGE_qt5base-network \
	CONFIG_PACKAGE_qt5base-gui \
	CONFIG_PACKAGE_qt5base-gl \
	CONFIG_PACKAGE_qt5base-widgets \
	CONFIG_PACKAGE_qt5base-examples \
	CONFIG_PACKAGE_qt5base-plugin-platforms-minimal \
	CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb \
	CONFIG_PACKAGE_qt5base-plugin-input-libinput \
#	CONFIG_PACKAGE_qt5base-plugin-imageformats-png \
#	CONFIG_PACKAGE_qt5base-plugin-platforms-eglfs \
#	CONFIG_PACKAGE_qt5base-plugin-platforms-minimalegl \

# Do not use sstrip for QT5. When sstrip is used the QT5 plugin loading does
# not work, because of QT''s internal elf parser, see
# https://bugreports.qt.io/browse/QTBUG-52567
# Use the code from the gcc package to use strip instaed.
ifneq ($(CONFIG_USE_SSTRIP),)
  STRIP:=$(TARGET_CROSS)strip $(call qstrip,$(CONFIG_STRIP_ARGS))
  RSTRIP:= \
    export CROSS="$(TARGET_CROSS)" \
		$(if $(CONFIG_KERNEL_KALLSYMS),NO_RENAME=1) \
		$(if $(CONFIG_KERNEL_PROFILING),KEEP_SYMBOLS=1); \
    NM="$(TARGET_CROSS)nm" \
    STRIP="$(STRIP)" \
    STRIP_KMOD="$(SCRIPT_DIR)/strip-kmod.sh" \
    $(SCRIPT_DIR)/rstrip.sh
endif

define Package/qt5base/Default
  SECTION:=video-frameworks
  CATEGORY:=Video
  SUBMENU:=Frameworks and Toolkits
  TITLE:=Qt5base
  URL:=http://qt.io
  MAINTAINER:=Mirko Vogt <mirko-openwrt@nanl.de>
endef

# define Package/qt5base
#   $(call Package/qt5base/Default)
#   DEPENDS:=
#   MENU:=1
# endef

define Package/qt5base-concurrent
  $(call Package/qt5base/Default)
  TITLE+=concurrent
  DEPENDS+=+qt5base-core
endef

define Package/qt5base-gl
  $(call Package/qt5base/Default)
  TITLE+=gl
  DEPENDS+=+qt5base-core +qt5base-gui +qt5base-widgets @BROKEN
endef

define Package/qt5base-core
  $(call Package/qt5base/Default)
  TITLE+=core
  DEPENDS+=+libpthread +zlib +libzstd +libpcre2-16 +libstdcpp +librt +libdouble-conversion $(ICONV_DEPENDS) +PACKAGE_icu:icu #FIXME: do not include ICONV_DEPENDS if ICU is selected (though, that's only an issue when using GNU iconv)
endef

define Package/qt5base-gui
  $(call Package/qt5base/Default)
  TITLE+=gui
  DEPENDS+=+qt5base-core +libpng +fontconfig +libfreetype
endef

define Package/qt5base-network
  $(call Package/qt5base/Default)
  TITLE+=network
  DEPENDS+=+qt5base-core +libopenssl
endef

# seems to be only present as static lib
# define Package/qt5base-paltformSupport
#   $(call Package/qt5base/Default)
#   DEPENDS+=
# endef

define Package/qt5base-printSupport
  $(call Package/qt5base/Default)
  TITLE+=print support
  DEPENDS+=+qt5base-core +qt5base-gui +qt5base-widgets
endef

define Package/qt5base-sql
  $(call Package/qt5base/Default)
  TITLE+=sql
  DEPENDS+=+qt5base-core
endef

define Package/qt5base-test
  $(call Package/qt5base/Default)
  TITLE+=test
  DEPENDS+=+qt5base-core
endef

define Package/qt5base-widgets
  $(call Package/qt5base/Default)
  TITLE+=widgets
  DEPENDS+=+qt5base-core +qt5base-gui
endef

define Package/qt5base-xml
  $(call Package/qt5base/Default)
  TITLE+=xml
  DEPENDS+=+qt5base-core
endef

#### plugins

####### bearer

define Package/qt5base-plugin-bearer-generic
  $(call Package/qt5base/Default)
TITLE+=bearer (plugin)
  DEPENDS+=+qt5base-core +qt5base-network
endef

####### generic / input

define Package/qt5base-plugin-input-libinput
  $(call Package/qt5base/Default)
  TITLE+=libinput (plugin)
  DEPENDS+=+qt5base-core +qt5base-gui +libinput
endef

define Package/qt5base-plugin-input-evdevkeyboard
  $(call Package/qt5base/Default)
  TITLE+=evdev keyboard (plugin)
  DEPENDS+=+qt5base-core +qt5base-gui +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
endef

define Package/qt5base-plugin-input-evdevmouse
  $(call Package/qt5base/Default)
  TITLE+=evdev mouse (plugin)
  DEPENDS+=+qt5base-core +qt5base-gui +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
endef

define Package/qt5base-plugin-input-evdevtablet
  $(call Package/qt5base/Default)
  TITLE+=evdev tablet (plugin)
  DEPENDS+=+qt5base-core +qt5base-gui +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
endef

define Package/qt5base-plugin-input-evdevtouch
  $(call Package/qt5base/Default)
  TITLE+=evdev touch (plugin)
  DEPENDS+=+qt5base-core +qt5base-gui +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
endef

####### imageformats

#define Package/qt5base-plugin-imageformats-gif
#  $(call Package/qt5base/Default)
#TITLE+=imageformat gif (plugin)
#  DEPENDS+=+qt5base-core +qt5base-gui
#endef

define Package/qt5base-plugin-imageformats-ico
  $(call Package/qt5base/Default)
  TITLE+=imageformat ico (plugin)
  DEPENDS+=+qt5base-core +qt5base-gui
endef

define Package/qt5base-plugin-imageformats-jpeg
  $(call Package/qt5base/Default)
  TITLE+=imageformat jpeg (plugin)
  DEPENDS+=+qt5base-core +qt5base-gui +libjpeg
endef

#define Package/qt5base-plugin-imageformats-png
#  $(call Package/qt5base/Default)
#  TITLE+=imageformat png (plugin)
#  DEPENDS+=+qt5base-core +qt5base-gui +libpng
#endef

####### platforms

#define Package/qt5base-plugin-platforms-eglfs
#  $(call Package/qt5base/Default)
#  TITLE+=platform eglfs (plugin)
#  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
#endef

#define Package/qt5base-plugin-platforms-minimalegl
#  $(call Package/qt5base/Default)
#  TITLE+=platform minimalegl (plugin)
#  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
#endef

define Package/qt5base-plugin-platforms-linuxfb
  $(call Package/qt5base/Default)
  TITLE+=platform linuxfb (plugin)
  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
endef

define Package/qt5base-plugin-platforms-minimal
  $(call Package/qt5base/Default)
  TITLE+=platform minimal (plugin)
  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
endef

define Package/qt5base-plugin-platforms-offscreen
  $(call Package/qt5base/Default)
  TITLE+=platform offscreen (plugin)
  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
endef

define Package/qt5base-plugin-platforms-vnc
  $(call Package/qt5base/Default)
  TITLE+=platform vnc (plugin)
  DEPENDS+=+qt5base-core +qt5base-gui +qt5base-network +libfreetype +fontconfig +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
endef



###### sql

#define Package/qt5base-plugin-sqldrivers-sqlite
#  $(call Package/qt5base/Default)
#  TITLE+=sqldriver sqlite (plugin)
#  DEPENDS+=+qt5base-core +qt5base-sql +libsqlite3
#endef

define Package/qt5base-examples
  $(call Package/qt5base/Default)
  TITLE+=examples
  DEPENDS+=\
		+qt5base-core \
		+qt5base-gui \
		+qt5base-widgets \
		+qt5base-network \
		+qt5base-sql \
		+qt5base-xml \
		+qt5base-printSupport \
		+qt5base-concurrent \
		+qt5base-gl
endef

define Build/Prepare
	$(call Build/Prepare/Default)
	$(CP) \
		./files/mkspecs/linux-openwrt-g++ \
		$(PKG_BUILD_DIR)/mkspecs/
endef

# TARGET_CFLAGS += \
# 	  -I$(STAGING_DIR)/usr/include/freetype2 \
# 	  -I$(STAGING_DIR)/usr/include/libdrm

define Build/Configure
	# CROSS/TARGET_* need to be passed to configure, in order to use cross-compiling tools to check for requirements.
	# Usually used variables such as CC/CXX/CFLAGS/CXXFLAGS/LDFLAGS would be used for compilation of host tools (qmake, moc, etc.),
	# hence we use the TARGET_* nomenclature.
	# 
	# NOTES:
	#  - icu support currently depends on selection of icu package which is not ideal, since unpredictable.
	#  - icu support overrides iconv support
	( cd $(PKG_BUILD_DIR) ; \
		TARGET_CROSS="$(TARGET_CROSS)" \
		TARGET_CFLAGS="$(TARGET_CFLAGS)" \
		TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(TARGET_CXXFLAGS)" \
		TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
		PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
		./configure \
			--prefix=$(QT_INSTALL_PREFIX) \
			--extprefix=$(QT_EXTPREFIX) \
			--hostprefix=$(QT_HOST_PREFIX) \
			--gcc-sysroot=no \
			--bindir=$(QT_INSTALL_BINS) \
			--headerdir=$(QT_INSTALL_HEADERS) \
			--libdir=$(QT_INSTALL_LIBS) \
			--archdatadir=$(QT_INSTALL_ARCHDATA) \
			--plugindir=$(QT_INSTALL_PLUGINS) \
			--libexecdir=$(QT_INSTALL_LIBEXECS) \
			--importdir=$(QT_INSTALL_IMPORTS) \
			--qmldir=$(QT_INSTALL_QML) \
			--datadir=$(QT_INSTALL_DATA) \
			--docdir=$(QT_INSTALL_DOCS) \
			--translationdir=$(QT_INSTALL_TRANSLATIONS) \
			--sysconfdir=$(QT_INSTALL_CONFIGURATION) \
			--examplesdir=$(QT_INSTALL_EXAMPLES) \
			--testsdir=$(QT_INSTALL_TESTS) \
			--hostbindir=$(QT_HOST_BINS) \
			--hostlibdir=$(QT_HOST_LIBS) \
			--hostdatadir=$(QT_HOST_DATA) \
			--verbose=yes \
			--opensource \
			--confirm-license \
			--release=yes \
			--optimized-tools=no \
			--optimize-size=no \
			--strip=no \
			--shared=yes \
			--framework=no \
			--xplatform=linux-openwrt-g++ \
			--reduce-exports=no \
			--reduce-relocations=no \
			--pch=no \
			--ltcg=no \
			--use-gold-linker=no \
			--warnings-are-errors=no \
			--pkg-config=yes \
			--compile-examples=$(if $(CONFIG_PACKAGE_qt5base-examples),yes,no) \
			$(if $(CONFIG_PACKAGE_qt5base-examples),,--nomake=examples) \
			--gui=$(if $(CONFIG_PACKAGE_qt5base-gui),yes,no) \
			--widgets=$(if $(CONFIG_PACKAGE_qt5base-widgets),yes,no) \
			--dbus=no \
			--accessibility=yes \
			--doubleconversion=system \
			--glib=no \
			--eventfd=no \
			--inotify=no \
			--iconv=$(if $(CONFIG_BUILD_NLS),$(if $(CONFIG_LIBC_USE_GLIBC)$(CONFIG_LIBC_USE_MUSL),posix)$(if $(CONFIG_LIBC_USE_UCLIBC),gnu),no) \
			--icu=$(if $(CONFIG_PACKAGE_icu),yes,no) \
			--pcre=system \
			--zlib=system \
			--journald=no \
			--syslog=no \
			--ssl=$(if $(CONFIG_PACKAGE_qt5base-network),yes,no) \
			--openssl-linked$(if $(CONFIG_PACKAGE_qt5base-network),,=no) \
			--libproxy=no \
			--system-proxies=yes \
			--cups=no \
			--fontconfig=yes \
			--freetype=system \
			--harfbuzz=no \
			--gtk=no \
			--opengl=no \
			--opengles3=no \
			--egl=no \
			--xcb-xlib=no \
			--qpa=$(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),linuxfb,) \
			--directfb=no \
			--eglfs=no \
			--gbm=no \
			--linuxfb=$(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),yes,no) \
			--xcb=no \
			\
			--libudev=yes \
			--evdev=yes \
			--libinput=$(if $(CONFIG_PACKAGE_qt5base-plugin-input-libinput),yes,no) \
			--mtdev=no \
			--tslib=no \
			--bundled-xcb-xinput=no \
			--xkbcommon=no \
			--gif=$(if $(CONFIG_PACKAGE_qt5base-gui),yes,no) \
			--ico=$(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-ico),yes,no) \
			--libjpeg=$(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg),system,no) \
			--libpng=system \
			--sql-db2=no \
			--sql-ibase=no \
			--sql-mysql=no \
			--sql-oci=no \
			--sql-odbc=no \
			--sql-psql=no \
			--sql-sqlite=no \
			--sql-sqlite2=no \
			--sql-tds=no \
			--sqlite=no \
	)
endef


define Host/Configure
	# CROSS/TARGET_* need to be passed to configure, in order to use cross-compiling tools to check for requirements.
	# Usually used variables such as CC/CXX/CFLAGS/CXXFLAGS/LDFLAGS would be used for compilation of host tools (qmake, moc, etc.),
	# hence we use the TARGET_* nomenclature.
	( cd $(HOST_BUILD_DIR) ; \
		TARGET_CFLAGS="$(HOST_CFLAGS)" \
		TARGET_CXXFLAGS="$(HOST_CFLAGS) $(HOST_CXXFLAGS)" \
		TARGET_LDFLAGS="$(HOST_LDFLAGS)" \
		./configure \
			--prefix=$(STAGING_DIR_HOST) \
			--hostprefix=$(STAGING_DIR_HOST) \
			--hostdatadir=$(STAGING_DIR_HOST)/share \
			--datadir=$(STAGING_DIR_HOST)/share \
			--archdatadir=$(STAGING_DIR_HOST)/lib \
			--gcc-sysroot=no \
			--verbose=yes \
			--opensource \
			--confirm-license \
			--release=yes \
			--optimized-tools=no \
			--optimize-size=no \
			--strip=no \
			--shared=yes \
			--framework=no \
			--reduce-exports=no \
			--reduce-relocations=no \
			--pch=no \
			--ltcg=no \
			--use-gold-linker=no \
			--warnings-are-errors=no \
			--pkg-config=yes \
			--compile-examples=no \
			--make=libs \
			--nomake=tools \
			--nomake=examples \
			--gui=yes \
			--widgets=no \
			--dbus=no \
			--accessibility=no \
			--doubleconversion=qt \
			--glib=no \
			--eventfd=no \
			--inotify=no \
			--iconv=no \
			--icu=no \
			--pcre=qt \
			--zlib=qt \
			--journald=no \
			--syslog=no \
			--ssl=no \
			--libproxy=no \
			--system-proxies=no \
			--cups=no \
			--fontconfig=no \
			--freetype=qt \
			--harfbuzz=no \
			--gtk=no \
			--opengl=no \
			--opengles3=no \
			--egl=no \
			--xcb-xlib=no \
			--directfb=no \
			--eglfs=no \
			--gbm=no \
			--linuxfb=no \
			--xcb=no \
			\
			--libudev=no \
			--evdev=no \
			--libinput=no \
			--mtdev=no \
			--tslib=no \
			--bundled-xcb-xinput=no \
			--xkbcommon=yes \
			--gif=no \
			--ico=no \
			--libjpeg=no \
			--libpng=no \
			--sql-db2=no \
			--sql-ibase=no \
			--sql-mysql=no \
			--sql-oci=no \
			--sql-odbc=no \
			--sql-psql=no \
			--sql-sqlite=no \
			--sql-sqlite2=no \
			--sql-tds=no \
			--sqlite=no \
	)
endef

define Build/InstallDev
	$(INSTALL_DIR) \
		$(STAGING_DIR)/host/mk

	$(CP) \
		./files/qmake.mk \
		$(STAGING_DIR)/host/mk/

	$(call Build/Install/HostFiles,$(1))
	$(call Build/Install/Headers,$(1))
	$(call Build/Install/Libs,$(1),*)
endef

define Host/Install
	$(call Host/Install/Default)

	$(INSTALL_DIR) \
	  $(STAGING_DIR_HOST)/bin \
	  $(STAGING_DIR_HOST)/lib \
	  $(STAGING_DIR_HOST)/include \
	  $(STAGING_DIR_HOST)/share

	$(CP) \
	  $(HOST_INSTALL_DIR)/lib/* \
	  $(STAGING_DIR_HOST)/lib/

	$(CP) \
	  $(HOST_INSTALL_DIR)/include/* \
	  $(STAGING_DIR_HOST)/include/

	$(CP) \
	  $(HOST_INSTALL_DIR)/share/* \
	  $(STAGING_DIR_HOST)/share/

	$(CP) \
	  $(HOST_INSTALL_DIR)/bin/* \
	  $(STAGING_DIR_HOST)/bin/
endef

define Package/qt5base-concurrent/install
	$(call Build/Install/Libs,$(1),libQt5Concurrent)
endef

define Package/qt5base-core/install
	$(call Build/Install/Libs,$(1),libQt5Core)
endef

define Package/qt5base-gl/install
	$(call Build/Install/Libs,$(1),libQt5OpenGL)
endef

define Package/qt5base-gui/install
	$(call Build/Install/Libs,$(1),libQt5Gui)
endef

define Package/qt5base-network/install
	$(call Build/Install/Libs,$(1),libQt5Network)
endef

define Package/qt5base-printSupport/install
	$(call Build/Install/Libs,$(1),libQt5PrintSupport)
endef

define Package/qt5base-sql/install
	$(call Build/Install/Libs,$(1),libQt5Sql)
endef

define Package/qt5base-test/install
	$(call Build/Install/Libs,$(1),libQt5Test)
endef

define Package/qt5base-widgets/install
	$(call Build/Install/Libs,$(1),libQt5Widgets)
endef

define Package/qt5base-xml/install
	$(call Build/Install/Libs,$(1),libQt5Xml)
endef

define Package/qt5base-plugin-bearer-generic/install
	$(call Build/Install/Plugins,$(1),bearer,libqgenericbearer)
endef

define Package/qt5base-plugin-input-libinput/install
	$(call Build/Install/Plugins,$(1),generic,libqlibinputplugin)
endef

define Package/qt5base-plugin-input-evdevkeyboard/install
	$(call Build/Install/Plugins,$(1),generic,libqevdevkeyboardplugin)
endef

define Package/qt5base-plugin-input-evdevmouse/install
	$(call Build/Install/Plugins,$(1),generic,libqevdevmouseplugin)
endef

define Package/qt5base-plugin-input-evdevtablet/install
	$(call Build/Install/Plugins,$(1),generic,libqevdevtabletplugin)
endef

define Package/qt5base-plugin-input-evdevtouch/install
	$(call Build/Install/Plugins,$(1),generic,libqevdevtouchplugin)
endef

#define Package/qt5base-plugin-imageformats-gif/install
#	$(call Build/Install/Plugins,$(1),imageformats,libqgif)
#endef

define Package/qt5base-plugin-imageformats-ico/install
	$(call Build/Install/Plugins,$(1),imageformats,libqico)
endef

define Package/qt5base-plugin-imageformats-jpeg/install
	$(call Build/Install/Plugins,$(1),imageformats,libqjpeg)
endef

#define Package/qt5base-plugin-imageformats-png/install
#	$(call Build/Install/Plugins,$(1),imageformats,libqpng)
#endef

define Package/qt5base-plugin-platforms-linuxfb/install
	$(call Build/Install/Plugins,$(1),platforms,libqlinuxfb)
endef

define Package/qt5base-plugin-platforms-vnc/install
	$(call Build/Install/Plugins,$(1),platforms,libqvnc)
endef

#define Package/qt5base-plugin-platforms-eglfs/install
#	$(call Build/Install/Plugins,$(1),platforms,libqeglfs)
#endef

#define Package/qt5base-plugin-platforms-minimalegl/install
#	$(call Build/Install/Plugins,$(1),platforms,libqminimalegl)
#endef

define Package/qt5base-plugin-platforms-minimal/install
	$(call Build/Install/Plugins,$(1),platforms,libqminimal)
endef

define Package/qt5base-plugin-platforms-offscreen/install
	$(call Build/Install/Plugins,$(1),platforms,libqoffscreen)
endef

#define Package/qt5base-plugin-sqldrivers-sqlite/install
#	$(call Build/Install/Plugins,$(1),sqldrivers,libqsqlite)
#endef

define Package/qt5base-examples/install
	$(call Build/Install/Examples,$(1))
endef

# $(eval $(call BuildPackage,qt5base))
$(eval $(call BuildPackage,qt5base-concurrent))
$(eval $(call BuildPackage,qt5base-core))
$(eval $(call BuildPackage,qt5base-gui))
$(eval $(call BuildPackage,qt5base-gl))
$(eval $(call BuildPackage,qt5base-network))
$(eval $(call BuildPackage,qt5base-printSupport))
$(eval $(call BuildPackage,qt5base-sql))
$(eval $(call BuildPackage,qt5base-test))
$(eval $(call BuildPackage,qt5base-widgets))
$(eval $(call BuildPackage,qt5base-xml))
$(eval $(call BuildPackage,qt5base-plugin-bearer-generic))
$(eval $(call BuildPackage,qt5base-plugin-input-libinput))
$(eval $(call BuildPackage,qt5base-plugin-input-evdevkeyboard))
$(eval $(call BuildPackage,qt5base-plugin-input-evdevmouse))
$(eval $(call BuildPackage,qt5base-plugin-input-evdevtablet))
$(eval $(call BuildPackage,qt5base-plugin-input-evdevtouch))
#$(eval $(call BuildPackage,qt5base-plugin-imageformats-gif))
$(eval $(call BuildPackage,qt5base-plugin-imageformats-ico))
$(eval $(call BuildPackage,qt5base-plugin-imageformats-jpeg))
#$(eval $(call BuildPackage,qt5base-plugin-imageformats-png))
$(eval $(call BuildPackage,qt5base-plugin-platforms-linuxfb))
#$(eval $(call BuildPackage,qt5base-plugin-platforms-eglfs))
#$(eval $(call BuildPackage,qt5base-plugin-platforms-minimalegl))
$(eval $(call BuildPackage,qt5base-plugin-platforms-minimal))
$(eval $(call BuildPackage,qt5base-plugin-platforms-offscreen))
$(eval $(call BuildPackage,qt5base-plugin-platforms-vnc))
#$(eval $(call BuildPackage,qt5base-plugin-sqldrivers-sqlite))
$(eval $(call BuildPackage,qt5base-examples))
$(eval $(call HostBuild))
